<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/BasicTemplate.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Rewired Documentation | Special Platform Support</title>
<!-- InstanceEndEditable -->
<!-- InstanceParam name="isRoot" type="boolean" value="false" -->
<!-- InstanceParam name="wide" type="boolean" value="false" -->
<link href="files/css/styles.css" rel="stylesheet" type="text/css" />
<!-- Favicons -->
<link rel="icon" type="image/x-icon" href="/projects/rewired/files/images/favicon.ico?v=1" />
<!-- Apple Icons -->
<!-- For iPad with high-resolution Retina display running iOS = 7: -->
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="files/images/favicon_152x152.png?v=1">
<!-- For iPad with high-resolution Retina display running iOS = 6: -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="files/images/favicon_144x144.png?v=1">
<!-- For iPhone with high-resolution Retina display running iOS = 7: -->
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="files/images/favicon_120x120.png?v=1">
<!-- For iPhone with high-resolution Retina display running iOS = 6: -->
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="files/images/favicon_114x114.png?v=1">
<!-- For the iPad mini and the first- and second-generation iPad on iOS = 7: -->
<link rel="apple-touch-icon-precomposed" sizes="76x76" href="files/images/favicon_76x76.png?v=1">
<!-- For the iPad mini and the first- and second-generation iPad on iOS = 6: -->
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="files/images/favicon_72x72.png?v=1">
<!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->
<link rel="apple-touch-icon-precomposed" href="files/images/favicon_57x57.png?v=1">
</head>

<body>


<div class="container">

    <div class="google-search-bar">
        <script>
          (function() {
            var cx = '007961148920562332911:oocvtwz5jce';
            var gcse = document.createElement('script');
            gcse.type = 'text/javascript';
            gcse.async = true;
            gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(gcse, s);
          })();
        </script>
        <gcse:search></gcse:search>
    </div>

  <div class="content">
	
	
	 
    <div class="page-body">
	
    
         
	    
      	<div class="sidebar-nav">
	        <h4><a href="Documentation.html">Documentation</a></h4>
	        <ul>
	          <li><a href="Overview.html">Overview</a></li>
	          <li><a href="ReleaseNotes.txt">Release Notes</a></li>
          </ul>
	        <strong>Essentials:</strong>
            <ol>
              <li><a href="Installation.html">Installation</a></li>
              <li><a href="QuickStart.html">Quick Start</a></li>
              <li><a href="BasicUsage.html">Basic Usage</a></li>
              <li><a href="Deployment.html">Deployment</a></li>
              <li><a href="BestPractices.html">Best Practices</a></li>
              <li><a href="RewiredEditor.html">Rewired Editor</a></li>
              <li><a href="https://guavaman.com/projects/rewired/docs/api-reference" target="_blank">API Reference</a></li>
            </ol>
            <strong>Concepts:</strong>
            <ul>
              <li><a href="InputManager.html">Input Manager</a></li>
              <li><a href="Players.html">Players</a></li>
              <li><a href="Actions.html">Actions</a></li>
              <li><a href="InputBehaviors.html">Input Behaviors</a></li>
              <li><a href="Controllers.html">Controllers</a></li>
              <li><a href="ControllerMaps.html">Controller Maps</a></li>
              <li><a href="ControllerTemplates.html">Controller Templates</a></li>
              <li><a href="MapCategories.html">Map Categories</a></li>
              <li><a href="Layouts.html">Layouts</a></li>
              <li><a href="LayoutManager.html">Layout Manager</a></li>
              <li><a href="MapEnabler.html">Map Enabler</a></li>
              <li><a href="CustomControllers.html">Custom Controllers</a></li>
            </ul>
            <strong>Extras:</strong>
            <ul>
              <li><a href="ControlMapper.html" title="Control Mapper">Control Mapper</a></li>
	          <li><a href="TouchControls.html" title="Touch Controls">Touch Controls</a></li>
              <li><a href="RewiredStandaloneInputModule.html">Rewired Standalone Input Module</a></li>
	          <li><a href="UnityInputOverride.html" title="Unity Input Override">Unity Input Override</a></li>
            </ul>
            <strong>Misc:</strong>
            <ul>
	          <li><a href="ComponentControls.html" title="Component Controls">Component Controls</a></li>
	          <li><a href="PlayerControllers.html" title="Player Controllers">Player Controllers</a></li>
	          <li><a href="InputMapper.html" title="Input Mapper">Input Mapper</a></li>
	          <li><a href="UserDataStore.html" title="User Data Store">User Data Store</a></li>
            </ul>
            <strong>How To's:</strong>
            <ul>
            	<li><a href="HowTos.html">See all topics...</a></li>
            </ul>
            <strong>Help:</strong>
            <ul>
              <li><a href="SupportedControllers.html" title="Supported Controllers">Supported Controllers</a></li>
              <li><a href="Overview.html#tested-platforms" title="Tested Platforms">Tested Platforms</a></li>
              <li><a href="Troubleshooting.html" title="Troubleshooting">Troubleshooting</a></li>
              <li><a href="KnownIssues.html">Known Issues</a></li>
              <li><a href="SpecialPlatformSupport.html" title="Special Platform Support">Special Platform Support</a></li>
	          <li><a href="Examples.html" title="Examples">Examples</a></li>
              <li><a href="Integration.html">Integrations</a></li>
	          <li><a href="Updating.html" title="Updating Rewired">Updating Rewired</a></li>
            </ul>
            <strong>FAQ</strong>
            <ul>
            	<li><a href="FAQ.html">See all topics...</a></li>
            </ul>
            <strong>Unity Help:</strong>
            <ul>
              <li><a href="https://docs.unity3d.com/Manual/" target="_blank">Unity Manual</a></li>
              <li><a href="https://docs.unity3d.com/ScriptReference/" target="_blank">Unity Script Reference</a></li>
              <li><a href="https://unity3d.com/learn/tutorials/modules" target="_blank">Unity Tutorials</a></li>
            </ul>
            <strong>Links:</strong>
            <ul>
              <li><a href="https://guavaman.com/projects/rewired">Rewired Website</a></li>
              <li><a href="https://guavaman.com/projects/rewired/docs">Web Documentation</a></li>
            </ul>
        </div>
        
    
    	<div class="main-body">
	        <div class="logo"><a href="https://guavaman.com/projects/rewired" title="Rewired"><img src="files/images/rewired-logo.png" width="173" height="139" alt="Rewired" /></a></div>
                     
            <h1>
            <!-- InstanceBeginEditable name="PageHeader" -->Special Platform Support
      <!-- InstanceEndEditable -->
            </h1>
            
			<!-- InstanceBeginEditable name="MainBody" -->

    <p><strong>Platforms:</strong></p>
    <ul>
      <li><a href="#windows-uwp">Microsoft Windows 10 Universal</a></li>
      <li><a href="#xbox-one">Microsoft Xbox One (XDK)</a></li>
      <li><a href="#xbox-game-core">Microsoft Xbox Game Core</a></li>
      <li><a href="#ps4">PlayStation<sup>&reg;</sup>4</a></li>
      <li><a href="#ps5">PlayStation<sup>&reg;</sup>5</a></li>
      <li><a href="#nintendo-switch">Nintendo Switch</a></li>
      <li><a href="#stadia">Google Stadia</a></li>
      <li><a href="#steam">Steam</a></li>
    </ul>
    <p>&nbsp;</p>
    <hr />
    <h3><a name="windows-uwp" id="windows-app-store2"></a>Microsoft Windows 10 Universal</h3>
<p>Windows 10 Universal support requires Unity 5.2+</p>
<p><a href="KnownIssues.html#uwp">See Known Issues for Windows 10 Universal</a></p>
<p><strong>CRITICAL WARNING:</strong> Versions of Rewired prior to 1.1.38.4 no longer work on the UWP platform as of Unity 2020.2.0f1 due to a new bug in IL2CPP. Update to Rewired 1.1.38.4+ to build on this platform.</p>
<p><strong>CRITICAL WARNING:</strong> There is a known issue with Unity on both .NET and IL2CPP builds in Unity 2018.2.0 - 2018.2.18 that causes the application to crash when a gamepad is disconnected. It is recommended you update to a version of Unity of 2018.2.19 or greater. <a href="KnownIssues.html#uwp-il2cpp-controller-disconnect-crash">See this form more information</a>.</p>
<p><strong>End-User Requirements:</strong></p>
<ul>
  <li>Windows 10, Fall Creators Update version 1709 or greater (10.0.16299.0).</li>
  <li><a href="https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist" target="_blank">Visual Studio C++ 2019 Redistributable</a> (required for IL2CPP build).</li>
</ul>
<p><strong>Installation:</strong></p>
<p>To build for the Windows 10 Universal platform, you must install Windows 10 Universal support. In order to build for this platform, you must be using the Windows Unity editor.</p>
<p>Install Windows 10 Universal platform support through the menu:<br />
  <strong>Window -&gt; Rewired -&gt; Setup -&gt; Install Platform Support -&gt; Windows 10 Universal</strong></p>
<p><strong>IMPORTANT NOTE:</strong></p>
<p><strong><em>The following applies ONLY if you have moved the Rewired folder from its default location. If you have not moved the Rewired folder, skip this section and do not make any changes to any DLLs.</em></strong></p>
<p>Unity 5+  requires that a Placeholder path be set in the Rewired/Internal/Libraries/Runtime/UWP/Rewired_Core.dll and/or Rewired/Internal/Libraries/Runtime/UWP/IL2CPP/Rewired_Core.dll (depending on your scripting backend) inpspector or you will get compilation errors when you try to compile.  If you move Rewired from its default install location, you must set this path to the current location of the main Rewired_Core.dll in your project.  If you move the Rewired folder to another directory, this path will have to be changed manually because Unity stores a path here instead of a GUID. Do not make any changes to any DLL unless you have moved Rewired out of its default location.</p>
<p>Here are the steps:</p>
<ol>
  <li>Rewired/Internal/Libraries/Runtime/UWP/Rewired_Core.dll and/or Rewired/Internal/Libraries/Runtime/UWP/IL2CPP/Rewired_Core.dll in the project view (select and change one at a time).</li>
  <li>In the inspector, click the Placeholder field and navigate to Assets/Rewired/Internal/Libraries/Runtime/Rewired_Core.dll.</li>
  <li>Click Apply.</li>
</ol>
<p>This is not automated because users tend to move Rewired around into various folders in the project. Because Unity chose to store a path here instead of a GUID, the link will break each time the Rewired folder is moved.</p>
<p><strong><a name="uwp-enabling-hid-joystick-support" id="uwp-enabling-hid-joystick-support"></a>Enabling HID Joystick Support</strong></p>
<p>In Unity 5.6+, you can enable HID device support through the Unity Build Player settings:</p>
<p>Build Settings -&gt; Player Settings -&gt; Publishing Settings -&gt; Capabilities -&gt; HumanInterfaceDevice</p>
<p><img src="files/images/specialplatformsupport_uwp_playersettings_hid.png" alt="HID" /></p>
<p>While this option was available in older versions of Unity, it did not enable both HID usages 4 and 5 causing some gamepads not to appear to the system.</p>
<p>For older versions of Unity, in order to enable support for HID joysticks, after building the project in Unity, open the new Windows 10 Universal project in Visual Studio and edit the Package.appxmanifest file with the XML text editor and add the following lines:</p>
<pre class="code">&lt;Capabilities&gt;<br />    &lt;DeviceCapability Name=&quot;humaninterfacedevice&quot;&gt;<br />        &lt;Device Id=&quot;any&quot;&gt;<br />            &lt;Function Type=&quot;usage:0001 0004&quot; /&gt;<br />            &lt;Function Type=&quot;usage:0001 0005&quot; /&gt;<br />        &lt;/Device&gt;<br />    &lt;/DeviceCapability&gt;<br />&lt;/Capabilities&gt;</pre>
<p>The &lt;Capabilities&gt; tag and its contents must be placed between the &lt;Package&gt; and &lt;/Package&gt; tags. This gives the app permission to read HID joysticks and gamepads. If you do not add this or do not add it correctly, HID joysticks will not work. However, the XBox 360 Controller and other XInput-compatible controllers will still function.</p>
<p><strong>WARNING:</strong>  Unity 2018.2.0 - 2018.2.18: There is a known issue with Unity in IL2CPP builds when enabling support for HID joysticks. <a href="KnownIssues.html#uwp-il2cpp-controller-disconnect-crash">See this for more information</a>.</p>
<p><strong>Error On DLL Import</strong></p>
<p>Unity reports this error every time the Rewired_Core.dll for Windows 10 Universal .NET is imported or reimported into the project:</p>
<pre class="code">System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---&gt; Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
</pre>
<p><span class="code">Ignore this error. There is no reason for this error and no way to silence it. It has no effect on the functionality of the library.</span></p>
<p>&nbsp;</p>
<hr />
<h3><a name="xbox-one" id="xbox-one"></a>Microsoft Xbox One (XDK)</h3>
<p><strong>The following information applies only to XDK builds:</strong></p>
<p>Rewired includes special support for XBox One for better controller support and more accurate hot-plugging behavior. Rewired supports gamepad vibration on XBox One, however you must first install the prerequisite Xbox One native library provided by Unity.</p>
<p>If you receive an error when switching to the Xbox One build target in Unity, make sure the <a href="Troubleshooting.html#compile-errors-ps4-xbone">Xbox One platform is checked on the Rewired_Core.dll import options</a>.</p>
<p><strong>Dependencies</strong></p>
<p>  Xbox One support requires that you install the following native library provided by Unity in the Plugins/XboxOne folder in your project:</p>
<ul>
  <li>Gamepad.dll</li>
  </ul>
<p>To get the library, go to:<br />
Unity Xbox Forums &gt; Unity for Xbox One Downloads (Sticky Topic) &gt; Under the &quot;Plugins&quot; section</p>
<p>The file Gamepad.dll can be found in Binaries\Native\Variations\Durango_Release in the plugins package.</p>
<p>If this dependiency is not installed correctly, XBox One builds will not function. You will only see black screen when launching the build on the Xbox One if the library is not installed.</p>
<p>If Gamepad.dll throws exceptions or causes errors, you will need to rebuild it from source code. Unity provides the source code. They do not continually update the built DLL for every new version of the SDK, so it may not work without being rebuilt to the version of the SDK you are using.</p>
<p><strong>Crashes on Start</strong></p>
<p>This is <em>always</em> due to improper set up of the dependency noted above. If Gamepad.dll is not found, not in the proper location, or does not have the proper inspector settings to enable it to be included with the XBox One build, all p/invoke calls to Gamepad.dll will fail, which crashes the XBox One rather than throwing an exception which can be caught and handled as happens on all other platforms. If the version of Gamepad.dll you are using does not have the exact method signature  Rewired expects, it will also crash. If you upgrade Unity versions but do not update the Gamepad.dll also, it may also crash if the gamepad.dll has been built to a different version of the Xbox One SDK.</p>
<p>If for any reason you cannot get the Gamepad.dll, you can disable all calls to the DLL by setting &quot;Xbox One: Disable Vibration&quot; in the Rewired Global Options window which can be found at:  Window -&gt; Rewired -&gt; Global Options. This will disable support for gamepad vibration.</p>
<p><strong>Accessing XBox One Controller Features</strong></p>
<p>Special controller features of the XBox One gamepad such as vibration can be accessed via the <a href="https://guavaman.com/projects/rewired/docs/api-reference/html/T_Rewired_Platforms_XboxOne_XboxOneGamepadExtension.htm">XboxOneGamepadExtension</a> class available in the Joystick class <a href="HowTos.html#xbox-one-controller-special-features">as seen in this example</a>.</p>
<p><strong>Troubleshooting</strong></p>
<p>See <a href="Troubleshooting.html#xbox-one">Troubleshooting - Xbox One</a> for solutions to issues on the Xbox One platform.</p>
<p>&nbsp;</p>
<hr />
<h3><a name="xbox-game-core" id="xbox-game-core"></a>Microsoft Xbox Game Core</h3>
<p>Rewired requires a separate plugin to support the Xbox Game Core platforms. This plugin is only available to licensed Xbox Game Core developers. <a href="https://guavaman.com/rewired#support">Please fill out the Xbox Game Core Plugin request form</a> requesting access to the Game Core plugin providing your email address and contact information (including company) that is reigstered with Microsoft and is authorized for Xbox Game Core development. Please be patient as the information has to be validated with Microsoft. You will receive download instructions when the information has been validated.</p>
<p>Be sure to check your email spam folder for the download instructions email.</p>
<p>&nbsp;</p>
<hr />
<h3><a name="ps4" id="ps4"></a>PlayStation<sup>&reg;</sup>4</h3>
<p>Rewired requires a separate plugin to support the PlayStation<sup>&reg;</sup>4 platform. This plugin is only available to licensed PlayStation 4 developers. You can register for the Rewired plugin on PS4 DevNet  under the Tools &amp; Middleware section. You will receive an email with download instructions when your registration has been processed.</p>
<p>Be sure to check your email spam folder for the download instructions email. If you have not received download instructions 24 hours after registering, contact support.</p>
<p>&nbsp;</p>
<hr />
<h3><a name="ps5" id="ps5"></a>PlayStation<sup>&reg;</sup>5</h3>
<p>Rewired requires a separate plugin to support the PlayStation<sup>&reg;</sup>5 platform. This plugin is only available to licensed PlayStation 5 developers. You can register for the Rewired plugin on PS5 DevNet  under the Tools &amp; Middleware section. You will receive an email with download instructions when your registration has been processed.</p>
<p>Be sure to check your email spam folder for the download instructions email. If you have not received download instructions 24 hours after registering, contact support.</p>
<p>&nbsp;</p>
<hr />
<h3><a name="nintendo-switch" id="nintendo-switch"></a>Nintendo Switch</h3>
<p>Rewired requires a separate plugin to support the Nintendo Switch platform. This plugin is only available to licensed Nintendo developers. More information can be found on the <a href="https://developer.nintendo.com" target="_blank">Nintendo Developer Portal</a>.</p>
<p>Fill out the form on the Nintendo Developer Portal for the Rewired Nintendo Switch Plugin and wait until you receive a response by email with instructions on how to download it. You will receive an email with download instructions when your registration has been processed.</p>
<p>Be sure to check your email spam folder for the download instructions email. If you have not received download instructions 24 hours after registering, contact support.</p>
<p>&nbsp;</p>
<hr />
<h3><a name="stadia" id="stadia"></a>Google Stadia</h3>
<p>Rewired requires a separate plugin to support the Stadia platform. This plugin is only available to licensed Stadia developers. Please contact your Stadia developer account manager for details on how to register for the plugin.</p>
<p>Be sure to check your email spam folder for the download instructions email.</p>
<p>&nbsp;</p>
<hr />
<h3><a name="steam" id="steam"></a>Steam</h3>
<p>See <a href="BestPractices.html#steam">Best Practices - Steam</a> and the <a href="Troubleshooting.html#steam">Troubleshooting - Steam</a> documentation for more information.</p>
<div class="bottom-pager clearfix">
  <a class="back-button" href="Documentation.html" title="Documentation"><span class="button-img"></span>Documentation</a>
</div>

<!-- InstanceEndEditable -->
        </div>
        
    </div>
  <div class="footer clearfix">
   	<p class="left">Copyright &copy;2014-2019 <a href="https://guavaman.com" title="Guavaman Enterprises">Guavaman Enterprises</a>. All rights reserved. No materials may be reproduced without permission.</p>
  	<p class="right"><a href="https://guavaman.com/projects/rewired" title="Return to Rewired Website">Return to Rewired Website</a></p>
  </div>
  <!-- end .content --></div>
  <!-- end .container --></div>
  
  
</body>
<!-- InstanceEnd --></html>
